/************************************************************
* @file gkt_rtc.h
************************************************************/

#ifndef GKT_RTC_H
#define GKT_RTC_H

#include "gkt_date_time.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef void (*gkt_rtc_alarm_fn)(void);

int gkt_rtc_init(void);

int gkt_rtc_is_wakeup(void);
int gkt_rtc_get_rc_status(void);

int gkt_rtc_get_time(gkt_date_time_s *date_time);
int gkt_rtc_set_time(gkt_date_time_s *date_time);

void gkt_rtc_register_alarm_callback(gkt_rtc_alarm_fn callback);
int gkt_rtc_set_alarm(uint64_t time, int periodic);
void gkt_rtc_clear_alarm(void);
int gkt_rtc_detect_alarm(void);

void gkt_rtc_lp_check(void);

#ifdef __cplusplus
}
#endif

#endif

